/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package OperacionesBD;

import SistemaProyectoVuelos.SistemaUsuario;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Usuario
 */
public class ConexionBD {
    
    public String BD = "proyectovuelos";   
    public String login = "root"; 
    public String password = "";
    public String url = "jdbc:mysql://localhost/" + BD;
    Connection conn = null;
    Statement st = null;
    PreparedStatement pst = null;
    ResultSet rs = null;
    
//    private String STRING_SQL = ("SELECT * FROM usuarios");
//    private static final String sentenciaSQL2 = "SELECT * FROM usuarios";
//    
    
    
    public Statement conectarBD() {
        
        Connection conn = null;
        Statement st = null;
            try {
                Class.forName("org.gjt.mm.mysql.Driver");
                conn = DriverManager.getConnection(url, login, password);
                
            if (conn != null){                
                System.out.println("Exito!! Conectado con  "+url+" ... Ok");
                st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                
                //Cerramos la conexion a la Base de Datos
                //conn.close();
                            }
                }
                catch(SQLException ex) {
                    System.out.println("Hubo un problema al conectar con la Base de Datos "+url);
                }
                catch(ClassNotFoundException ex) {
                    System.out.println(ex);
                }
                    return st;
         }
   
    
    public ResultSet conectarBD2(String sentenciaSQL2) {
        
        Connection conn = null;
        PreparedStatement pst = null;
       
        
            try {
                Class.forName("org.gjt.mm.mysql.Driver");
                conn = DriverManager.getConnection(url, login, password);
                
            if (conn != null){                
                System.out.println("Exito!! Conectado con  "+url+" ... Ok");
                pst = conn.prepareStatement(sentenciaSQL2);
                }
            } catch (SQLException ex) {
                    System.out.println("Hubo un problema al conectar con la Base de Datos "+url);
                }
                catch(ClassNotFoundException ex) {
                    System.out.println(ex);
                }
                    return null;
         }
    
    public int altaUsuario(String sentenciaSQL) throws SQLException {
        try {
            Class.forName("org.gjt.mm.mysql.Driver");
            conn = DriverManager.getConnection(url, login, password);

            if (conn != null) {
                System.out.println("Exito!! Conectado con  " + url + " ... Ok");
                pst = conn.prepareStatement(sentenciaSQL);
                return pst.executeUpdate();
            }
        } catch (SQLException ex) {
            System.out.println("Hubo un problema al conectar con la Base de Datos " + url);
        } catch (ClassNotFoundException ex) {
            System.out.println(ex);
        }
        return 0;
    }
    
     public int altaCiudad(String sentenciaSQL) throws SQLException {
        try {
            Class.forName("org.gjt.mm.mysql.Driver");
            conn = DriverManager.getConnection(url, login, password);

            if (conn != null) {
                System.out.println("Exito!! Conectado con  " + url + " ... Ok");
                pst = conn.prepareStatement(sentenciaSQL);
                return pst.executeUpdate();
            }
        } catch (SQLException ex) {
            System.out.println("Hubo un problema al conectar con la Base de Datos " + url);
        } catch (ClassNotFoundException ex) {
            System.out.println(ex);
        }
        return 0;
    }
    
    public ResultSet cargarCombo2(String sentenciaSQL) throws SQLException {
        try {
            Class.forName("org.gjt.mm.mysql.Driver");
            conn = DriverManager.getConnection(url, login, password);

            if (conn != null) {
                System.out.println("Exito!! Conectado con  " + url + " ... Ok");
                st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                return st.executeQuery(sentenciaSQL);
            }
        } catch (SQLException ex) {
            System.out.println("Hubo un problema al conectar con la Base de Datos " + url);
        } catch (ClassNotFoundException ex) {
            System.out.println(ex);
        }
        return null;
    }
    
    
    public void cerrarConexionBD() throws SQLException{
        if (conn != null) { conn.close(); }
        if (st != null) { st.close(); }
    }
    
    public void cerrarConexionBD2() throws SQLException{
        if (conn != null) { conn.close(); }
        if (pst != null) { pst.close(); }
    }
    
   public DefaultTableModel retornarDatos(String Sentencia_SQL) {
        ResultSet rs = null;
        //Connection conn = null;
        Statement st = null;
        ResultSetMetaData rsm = null;
   
        DefaultTableModel modeloTable = new DefaultTableModel();
        
        try {
         
//          Class.forName("org.gjt.mm.mysql.Driver");
//            conn  = DriverManager.getConnection ("jdbc:mysql://localhost:3306/proyectovuelos?user=root&password=");
//            st = conn.createStatement();
            rs = st.executeQuery(Sentencia_SQL);
            
             rsm = rs.getMetaData();
             int numeroColumnas = rsm.getColumnCount();
             
             Object[] fila = new Object[numeroColumnas];
             
             for (int i = 0; i < numeroColumnas; i++) {
                fila[i]=rsm.getColumnLabel(i+1);
             }
             modeloTable.setColumnIdentifiers(fila);
             
                while (rs.next()) {
  Object[] datosFila = new Object[modeloTable.getColumnCount()];
  
                    for (int i = 0; i < modeloTable.getColumnCount(); i++) {
                        datosFila[i] = rs.getObject(i+1);
                    }
  modeloTable.addRow(datosFila);
 }
            //st.close();
            //rs.close();
        } catch (Exception p) {
            System.out.println(p);
        } finally {
            return modeloTable;
        }
}
}
